<template>
  <view>
    <button @click="login" type="primary">微信登录</button>
  </view>
</template>

<script>
export default {
  onLoad () {
    // 页面加载提前调用code,避免出现：Error: Illegal Buffer
    this.getCode()
  },
  methods: {
    // 获取登录需要的code参数
    async getCode () {
      const { code } = await uni.login()
      console.log('code参数：', code)
      // 存到this实例上
      this.code = code
    },
    // 登录
    async login () {
      /**
       * 获取微信官方提供的后台参数
       */
      const { encryptedData, rawData, iv, signature } = await uni.getUserProfile({
        desc: '获取用户信息登录'
      })
      // console.log('微信用户加密信息：', res)
      try {
        const { data } = await this.request({
          url: '/api/public/v1/users/wxlogin',
          method: 'post',
          data: {
            encryptedData, rawData, iv, signature,
            code: this.code
          }
        })
        console.log('登录：', data)
        // 存到本地
        uni.setStorageSync('ugo-token', data.token)
        // 返回上次访问页面
        uni.navigateBack();
      } catch (error) {

      }
    }
  },
}
</script>

<style lang="scss" scoped>
button {
  width: 600rpx;
  margin: 200rpx auto 0;
}
</style>